#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<string>
using namespace std;

//class string
//{
//public:
//	char& operator[](size_t i)
//	{
//		return _str[i];
//	}
//private:
//	char _buff[16];
//	char* _str;
//	size_t _size;
//	size_t _capacity;
//};

//int main()
//{
//	string s("hello world");
//	for (int i = 0; i < s.size(); ++i)
//	{
//		cout << s[i] << " ";
//	}
//
//	return 0;
//}

//int main()
//{
//	string s("hello world");
//	string::iterator it = s.begin();
//	while (it != s.end())
//	{
//		cout << *it << " ";
//		++it;
//	}
//	return 0;
//}
//int main()
//{
//	string s("hello world");
//	string::iterator it = s.begin();
//	while (it != s.end())
//	{
//		*it += 2;
//		cout << *it << " ";
//		++it;
//	}
//	cout << endl;
//	cout << s << endl;
//	for (auto& ch : s)
//	{
//		ch -= 2;
//		cout << ch << " ";
//	}
//	cout << endl;
//	cout << s << endl;
//
//	return 0;
//}
//void Func(auto a)
//{
//
//}
//int main()
//{
//	auto array[] = { 520,1314 };
//	return 0;
//}
//int main()
//{
//	string s("hello world");
//	string::iterator it = s.begin();
//	auto it2 = s.begin();
//	return 0;
//}
//int main()
//{
//	int array[] = { 520,1314,1,2,3 };
//	for (auto a: array)
//	{
//		cout << a << " ";
//	}
//	return 0;
//}
//int main()
//{
//	string s("hello world");
//	string::reverse_iterator rit = s.rbegin();
//	while (rit != s.rend())
//	{
//		cout << *rit << " ";
//		++rit;
//	}
//	return 0;
//}
//int main()
//{
//	const string s("hello world");
//	string::const_iterator cit = s.begin();
//	while (cit != s.end())
//	{
//		cout << *cit << " ";
//		++cit;
//	}
//	return 0;
//}
//
//int main()
//{
//	string s("hello world");
//	cout << s.capacity();
//	return 0;
//}
//void TestPushBack()
//{
//	string s;
//	size_t sz = s.capacity();
//	cout << "capacity:" << s.capacity() << endl;
//	cout << "making s grow:\n";
//	for (int i = 0; i < 100; ++i)
//	{
//		s.push_back('c');
//		if (sz != s.capacity())
//		{
//			sz = s.capacity();
//			cout << "capacity changed: " << sz << '\n';
//		}
//	}
//}
//int main()
//{
//	TestPushBack();
//	return 0;
//}
//int main()
//{
//	string s1("hello world");
//	string s2("*************************");
//	string s3;
//	cout << sizeof(s1) << endl;
//	cout << sizeof(s2) << endl;
//	cout << sizeof(s3) << endl;
//	return 0;
//}
//int main()
//{
//	string s("hello world");
//	s.reserve(100);
//	cout << s.capacity();
//	return 0;
//}
//int main()
//{
//	string s("********************");
//	cout << s.size() << endl;
//	cout << s.capacity() << endl << endl;
//
//	s.reserve(15);
//	cout << s.size() << endl;
//	cout << s.capacity() << endl << endl;
//
//	s.reserve(28);
//	cout << s.size() << endl;
//	cout << s.capacity() << endl << endl;
//
//	s.reserve(48);
//	cout << s.size() << endl;
//	cout << s.capacity() << endl << endl;
//	return 0;
//}

//int main()
//{
//	string s("hello world");
//	cout << s << endl;
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//	s.clear();
//	cout << s.size() << endl;
//	cout << s.capacity() << endl;
//
//	return 0;
//
// }
int main()
{
	string s("************************");//24
	cout << s.size() << endl;
	cout << s.capacity() << endl;
	s.resize(18);
	cout << s.size() << endl;
	cout << s.capacity() << endl;
	s.resize(28, 'x');
	cout << s << endl;
	cout << s.size() << endl;
	cout << s.capacity() << endl;
	s.resize(36, '#');
	cout << s << endl;
	cout << s.size() << endl;
	cout << s.capacity() << endl;
	return 0;
}